نمایش نتایج: از شماره 1 تا 3 از مجموع 3
Like Tree5نفر پسندیدند
  • 3 ارسال توسط NIIT
  • 1 ارسال توسط forough
  • 1 ارسال توسط Hossein

موضوع: توضیحاتی در مورد Cookie و Session

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    توضیحاتی در مورد Cookie و Session

    سلام دوست گلم..... در قسمتای قبل در بخش htmlاومدیم در مورد طریقه ورود اطلاعات با هم گفتگو کردیم حالا میخوایم در مورد این صحبت کنیم که اول فرق بین کوکی و سشن چیه و بعد اینکه بدونیم چطوری باید استفادشون کنیم:
    نگاه کنید وقتی شما میخواین وارد یه مغازه بشید مثلا بهتون یه کاغذ میدن و برای اینکه یادشون بمونه مشتری ای به نام شما دارن یه کاغذ با نام شما برای خودشون نگه میدارن ، اون مغازه میشه سرور ..کاغذی که به شما میدن میشه کوکی و اونی که پیش خودشون نگه میدارن میشه سشنsession، حالا شمای کاربر تا هرزمان که توی اون مغازه ای فقط با اون کاغذ میشناسنتون (cookie) به محض اینکه پاتونو بذارین بیرون دیگه اون کاغذ هم از بین میره اما صاحب مغازه که سرور بود به احترام شما مثلا تا یه تایمی اون کاغذی که مال شما بود رو پیش خودش نگه میداره بعد از یه مدتی اگه دید که دیگه شما نرفتی پیشش و کاری باهاش نداشتی اون کاغذ متعلق به شما رو از بین میبره تا دستاش پر از کاغذ نشه که دستاش در واقع همون حافظه رم ماست.....بازم اگه فرقشو خوب متوجه نشدید بگید بیشتر توضیح بدیم...............حالا بریم سراغ کد:

    صفحه لاگین:
    کد HTML:
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Untitled Page</title>
    </head>
    <body>
    <form action="chk.aspx" method="get">
            Username: <input type="text" name="usr" /><br />
            Password<input type="password" name="psw" /><br />
            Stay In Yahoo for 2 weeks<input type=checkbox name="chk" />
            <br />
            <input type="submit" value="ورود" /><br />
        </form>
        <!-- Added in 02 -->
        <span style="color:Red">
        <%
            if (Request["msg"] != null)
                Response.Write(Request["msg"]);
         %>
         </span>
         <!-- End of Added in 02 -->
    </body>
    </html>
    صفحه پردازشی:
    کد HTML:
    <%@ Page Language="C#" %>
    
    <%
        if (Request["usr"] == "a" && Request["psw"] == "b")
        {
            //updated in 03
            //نوشته شود response.redirect حتما باید قبل از 
            Response.Cookies["log"].Value = "yes";
            if (Request["chk"] == "on")
            {
                DateTime dt = new DateTime();
                dt = DateTime.Now.AddDays(14);
                Response.Cookies["log"].Expires = dt;
            }
            Response.Redirect("default.aspx"); 
            
            //end of updated in 03
            
        }
        else
        {
            //updated in 02
            Response.Redirect("login.aspx?msg=wrong username or password");
            //end of updated in 02
        }
     %>
    رفتن به این صفحه البته بعد از پردازش:
    کد HTML:
    <%@ Page Language="C#" %>
    <!-- this file was changed from htm to aspx in step 03 -->
    <!-- updated in 03 -->
    <%
        //Request.Cookies["log"]==null || 
        if (Request.Cookies["log"] == null || Request.Cookies["log"].Value != "yes")
            Response.Redirect("login.aspx?msg=ha ha you must first sign in");
     %>
    <!-- end of updated in 03 -->
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Main</title>
        <style>
            #Div1
            {
                left:5%;top:5%;width:20%;height:20%;
                position:absolute;
                border-width:thick;border-color:Green;border-style:solid;
            }
            #Div2
            {
                left:30%;top:5%;width:70%;height:20%;
                position:absolute;
                border-width:thick;border-color:Green;border-style:solid;
            }
            #Div3
            {
                left:5%;top:30%;width:20%;height:70%;
                position:absolute;
                border-width:thick;border-color:Green;border-style:solid;
            }
            #Div4
            {
                left:30%;top:30%;width:70%;height:70%;
                position:absolute;
                border-width:thick;border-color:Green;border-style:solid;            
            }
    
    
        </style>
    </head>
    <body>
        <div id="Div1" >LOGO</div>
        <div id="Div2">Header-Picture</div>
        <div id="Div3">Menu
        <!-- updated in 03-->
            <br />
            <form action="logout.aspx">
                <input type="submit" value="خروج" />
            </form><br />
            <a href=logout.aspx>خروج</a>
        <!-- end of updated in 03-->
        </div>
        <div id="Div4">Main<br />
            <br />
            Go to Default2</div>
    
    </body>
    </html>
    رفتن به این صفحه:
    کد HTML:
    <%@ Page Language="C#" %>
    <!-- this file was made in step 03 only for test -->
    
    <%
        if (Request.Cookies["log"].Value != "yes")
            Response.Redirect("login.aspx?msg=you must first sign in");
     %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        default2
        </div>
        </form>
    </body>
    </html>
    صفحه ی پردازشی که دستور میده کوکی از بین بره:
    کد HTML:
    <%@ Page Language="C#" %>
    <!-- this file was made in step 03 -->
    <%
        Response.Cookies.Remove("log");
        Response.Redirect("login.aspx");
    %>


    موضوعات مشابه:
    ویرایش توسط NIIT : 13th March 2012 در ساعت 03:51 AM
    Hossein, Shojaee و masoudvaio این نویسه را میپسندند.

  2. #2
    عضو تازه وارد
    تاریخ عضویت
    2012 June
    محل سکونت
    کنار دریای شمال
    ارسال ها
    10
    تشکر
    62
    تشکر شده 33 بار در 9 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    تا اونجا که من متوجه شدم تفاوت اصلی این دو با هم اینه که session سمت سروره، بنابراین امنیت بیشتری داره. اما فکر می کنم وجود ایندو با هم الزامی نداره.
    در واقع یا از cookie استفاده میشه یا از session .اگه درست میگم لطفا توضیح بدید که چه وقت از هر کدومش استفاده میشه.چون تو خیلی از این سایت ها
    می بینم از cookie استفاده می کنند.
    متشکرم

    Hossein این نویسه را میپسندد.

  3. #3
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط forough نمایش پست ها
    تا اونجا که من متوجه شدم تفاوت اصلی این دو با هم اینه که session سمت سروره، بنابراین امنیت بیشتری داره. اما فکر می کنم وجود ایندو با هم الزامی نداره.
    در واقع یا از cookie استفاده میشه یا از session .اگه درست میگم لطفا توضیح بدید که چه وقت از هر کدومش استفاده میشه.چون تو خیلی از این سایت ها
    می بینم از cookie استفاده می کنند.
    متشکرم
    درسته . البته فرق های دیگه ای هم بین سشن و کوکی هست مثل :
    1. کوکی ها بصورت رشته ذخیره میشن
    2. چون بصورت رشته و متنی در طرف کاربر ذخیره میشن امنیت پایینی دارن
    3. کوکی ها هم میتونن برای هر فرد جداگانه استفاده بشن و یا میتونن اینطور نباشن و تنظیمات کلی و یا یک سری اطلاعات اماری از سایت رو ذخیره کنن
    4. استفاده از کوکی ها باعث افزایش ترافیک شبکه میشه .
    5. اندازه اونها 40 بایته و تعداد کوکیهایی که میتونید استفاده کنید به 20 محدود شده
    6. ما میتونیم کوکی ها رو غیرفعال کنیم ( ما یعنی کلاینت )
    7. ما دو نوع کوکی داریم نوع پایدار و نوع ناپایدار


    سشن :
    1. در سشن میتونید هر نوع داده ای رو ذخیره کنید
    2. سشن امن هست چرا که داده ها بصورت رمزنگاری شده /باینری ( و نه متنی و رشته ای ) در اون ذخیره میشن و در سمت سرور از حالت رمز خارج میشن
    3. سشن برای هر کاربر بصورت جداگانه و اختصاصی هست
    4. هیچ محدودیتی در تعداد سشن ها در برنامتون وجود نداره
    5. نکته منفی استفاده از سشن سرباری هست که به سرور تحمیل میکنه - برای همین در استفاده از اون باید جوانب کار رو رعایت کرد-
    6. سشنها به کوکیهای غیرپایدار هم معروف هستند چرا که زمان حیات اونها رو میشه بصورت دستی مشخص کرد .


    کوکی:
    بطور کل میشه گفت کوکیها داده های کوچکی از نظر اندازه هستند که بصورت رشته ای یا بصورت فایل بر روی سیستم کلاینت ذخیره میشن یا در حافظه سشن مرورگر کلاینت قرار میگیرن .
    کوکی ها عموما برای ذخیره تنظیمات استفاده میشن . مثلا فرض کنید ما سایتی داریم که صفحه اول اون رو بر حسب اینکه یک کاربر داره اونو میبینه یا یک فرد ثبت نام نکرده سفارشیش میکنیم .
    برای اینکه وقتی کسی به سایت ما وارد شد ما بفهمیم این کاربر ما هست یا نه و صفحه تغییر پیدا کرده رو بهش نشون بدیم یا نه ما میایم و کوکی رو روی سیستمش چک میکنیم .بصورت زیر:
    if (Request.Cookies[“username”]!=null)
    lbMessage.Text=Request.Cookies[“username”].Value+" عزیز " +"خوش آمدید!";
    else
    lbMessage.text="بازدید کننده محترم سلام!";

    حالا اگه قرار باشه اطلاعات کلاینتمون رو ذخیره کنیم میتونیم این کار رو اینطور انجام بدیم :

    Response.Cookies[“username’].Value=username;

    با این کار دفعه بعدی که این کاربر به سایت ما سر میزنه ما میتونیم اون رو براحتی بشناسیم .


    این هم چند مثال از استفاده از کوکی ها :
    1در سایتهای فروشگاهی که شما میریدو کالاهای مختلف رو دید میزنید - میشه امار این بازدیدها رو در کوکیها ذخیره کرد که دفعه بعدی که میرید با نگاه کردن به کوکی ها لیست کالاهای مورد علاقه شما بهتون نمایش داده بشه ( مثلا آمازون این کارو میکنه + خیلی از سایتهای دیگه )
    شما وقتی در سایتی ثبت نام کردین و یوزر پستون رو ذخیره کردید مرورگر شما - هر زمانی که شما دوباره وارد اون سایت شدید براحتی میتونه بر اساس اون کوکی ها عمل لاگین رو براتون انجام بده
    بعضی از سایتها هستن که قبل از ورود از شما سن تون رو میپسن اگه فرد سن کم رو وارد کنید دیگه بهتون اجازه ورود نمیده - صفحه رو هم ببنید مرورگر رو هم ببنید و دوباره به همون سایت برید در بدو رورد با پیام خطا یا اخطاری مواجه میشید که میگه سن شما کمه - اینجا بار اولی که شما سنتون رو وارد کردید اون رو در کوکی ذخیره کرد و هر بار که شما سایت رو میبنید اول میره کوکی رو چک میکنه - اگر کوکی وجود نداشت سوال رو میپرسه و اگر داشت بر اساس مقداری که توش ذخیره شده تصمیم میگیره .

    سشن :

    در مورد سشن ها هم باید بگم سشن معمولا برای ذخیره اطلاعات مربوط به نشست بین کلاینت و سرور استفاده میشه اطلاعاتی که برای رفت و برگشتهای ممتد سرور و جواب به درخواستهای مختلف به اونها نیازه.
    هر سشن مربوط به یک کلاینت هست و بنابراین برای هر کلاینت بطور جداگانه اختصاص پیدا میکنه . یک داده ایده آل برای ذخیره شدن در سشن خصیصه هایی مثل این هست : بزودی از بین بره ,داده حساسی باید باشه که منحصرا مربوط به یک نشست خاص بشه .


    هر سشن فعال در ASP.NET توسط یک رشته آی دی 120 بیتی که ( که بهش SessionID گفته میشه و ) شامل کاراکترهای معتبر اسکی (از لحاظ معتبر بودن در URL ها ) هست تشخیص داده میشه و مورد استفاده قرار میگیره .
    SessionID هایی که صحبتش رفت توسط یک الگوریتم خاص تولید میشن تا اول از یکتایی اونها اطمینان حاصل بشه و اینطور تداخل سشنها رو نداشته باشیم و از طرفی تصادفی بودن اونها تضمین بشه تا اینطور نشه براحتی اونها رو حدس زد ( و خرابکاری صورت داد) .
    SessionID ها براساس تنظیماتی که شما روی وب کانفیگ برنامتون اعمال میکنید یا توسط کوکیها و یا توسط یک URL تغییر پیدا کرده بین درخواستهای بین کلاینت و سرور منتقل میشن

    تمامی برنامه های تحت وب باید یک فایل تنظیمات یا بهتر بگم پیکربندی بنام web.config داشته باشن . این فایل یک فایل xml هست که احتمالا همتون دیدید . در این فایل یک بخشی وجود داره با نام sessionState که در اون میتونید تنظیمات مربوط به سشن رو در برنامتون لحاظ کنید .مقادیرش رو میتونید بعنوان مثال در زیر ببینید :


    <sessionState
    mode="SQLServer"
    cookieless="true"
    sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
    sqlCommandTimeout="10" />

    برای اطلاعات بیشتر میتونید اینجا رو ببینید : sessionState Element (ASP.NET Settings Schema)

    گزینه cookieless هم میتونه true و هم میتونه false باشه . اگه روی false - که گزینه پیشفرض هست- باشه ASP.net از کوکی برای تشخیص کاربرا استفاده میکنه . اگه true باشه ASP.net یک عدد یکتا رو بصورت تصادفی تولید میکنه و اون رو دقیقا جلوی فایل درخواست شده قرار میده .
    این شماره برای شناسایی کاربر مورد استفاده قرار میگیره .
    و در آخر هم برای کار برای ذخیره اطلاعات در سشن و بازیابی اون اینطور عمل میکنیم :


    //ذخیره سازی
    Session[“name”]=”Hossein”;
    //بازیابی
    name=Session[“name”];


    ویرایش توسط Hossein : 24th June 2012 در ساعت 01:04 AM
    Pouya این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 12:33 AM بر حسب GMT +4 می باشد.